package com.example.monitor.model;

import lombok.Data;

import java.math.BigDecimal;

/**
 * jvm虚拟机信息
 */
@Data
public class JvmEntity {
    /**
     * JVM名称
     */
    private String name;

    /**
     * JDK版本
     */
    private String version;

    /**
     * 供应商
     */
    private String vendor;

    /**
     * 启动时间
     */
    private String startTime;

    /**
     * 运行时长（毫秒）
     */
    private Long runTime;

    /**
     * 堆内存初始大小（字节）
     */
    private Long heapInit;

    /**
     * 堆内存最大大小（字节）
     */
    private Long heapMax;

    /**
     * 堆内存已使用（字节）
     */
    private Long heapUsed;

    /**
     * 堆内存提交大小（字节）
     */
    private Long heapCommitted;

    /**
     * 非堆内存初始大小（字节）
     */
    private Long nonHeapInit;

    /**
     * 非堆内存最大大小（字节）
     */
    private Long nonHeapMax;

    /**
     * 非堆内存已使用（字节）
     */
    private Long nonHeapUsed;

    /**
     * 非堆内存提交大小（字节）
     */
    private Long nonHeapCommitted;

    /**
     * 内存使用率（百分比）
     */
    private BigDecimal memoryUsage;

    /**
     * 已加载类数量
     */
    private Integer loadedClassCount;

    /**
     * 总加载类数量
     */
    private Long totalLoadedClassCount;

    /**
     * 已卸载类数量
     */
    private Long unloadedClassCount;

    /**
     * 线程总数
     */
    private Integer threadCount;

    /**
     * 峰值线程数
     */
    private Integer peakThreadCount;

    /**
     * 守护线程数
     */
    private Integer daemonThreadCount;
}
